//应该在页面加载完以后就应该去连接百度云 并订阅消息
//导入mqtt库
import mqtt from '../../utils/mqtt.js';
// 通过mqtt协议连接百度云 至少需要的数据  主机名 用户信息
const host = 'wxs://agefvty.iot.gz.baidubce.com/mqtt';
// 订阅的主题
const humi_topic = '$iot/test_device1/user/humi';
const temp_topic = '$iot/test_device1/user/temp';
// 发布的主题
const led_topic = '$iot/test_device1/user/led';

const options = {
  clientId: "wechat_app",
  username: 'thingidp@agefvty|wechat_app|0|MD5',
  password: 'dcd87e7cbd4852b6b6ee2727bab9c8da'
}
Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 先设置一个 连接对象  目前为null
    client: null,
    temp: "0",
    humi: "0",
    //  和灯相关的字段
    ledvalue: [{
      ledlogo: '/images/LED_gray.png',
      btnvalue: '开灯',
      btnflag: false
    }],
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function () {
    // 存储当前页面的对象
    var that = this;
    // 连接 对象赋值给client
    this.data.client = mqtt.connect(host, options);
    //当连接成功 调用一个回调函数
    that.data.client.on('connect', that.callBack);
    // 处理订阅消息的回调函数
    that.data.client.on('message', that.msgback);
  },
  // 自定义函数  为连接成功的回调
  callBack: function (connack) {
    var that = this;
    console.log("MQTT服务器连接成功");
    // 订阅消息
    that.data.client.subscribe(humi_topic, {qos: 0}, function (err) {
      if (!err) {
        console.log("室内湿度订阅成功");
      }
    })
    that.data.client.subscribe(temp_topic, {qos: 0}, function (err) {
      if (!err) {
        console.log("室内温度订阅成功");
      }
    })

    //关灯 - 0 / 开灯 - 1
    // 发送指令
    that.data.client.publish(led_topic, "0", {qos: 1})
  },
  // 获取消息的回调函数
  msgback: function (topic, message) {
    var that = this;
    var value = message.toString();
    //console.log(value);
    if (topic.toString() == humi_topic)
    {
      that.setData({'humi': value})
    }
    if (topic.toString() == temp_topic)
    {
      that.setData({'temp': value})
    }
  },
  // 点击开关按钮触发函数
  open: function () {
    var that = this;
    // 判断换图
    if (that.data.ledvalue[0].btnflag) {
      that.setData({
        'ledvalue[0].btnvalue': '开灯',
        'ledvalue[0].btnflag': false,
        'ledvalue[0].ledlogo': '/images/LED_gray.png'
      })

      // 发送指令
      that.data.client.publish(led_topic, "0", {qos: 1})
    } else {
      //切换ui界面
      that.setData({
        'ledvalue[0].btnvalue': '关灯',
        'ledvalue[0].btnflag': true,
        'ledvalue[0].ledlogo': '/images/LED_red.png'
      })

      // 发送指令
      that.data.client.publish(led_topic, "1", {qos: 1})
    }
  }
})